#include<iostream>
#include<string>
#include<fstream>
#include"bundle.h"
int main(int argc,char* argv[])
{
    if(argc<3)
    {
    std::cout<<"argv[1] 是原始文件路径名\n";
    std::cout<<"argv[2] 是压缩包名称\n";
    return -1;
    }
    std::string ifilename=argv[1];
    std::string ofilename=argv[2];
    std::ifstream ifs;
    
    ifs.open(ifilename,std::ios::binary);//打开原始文件
    
    ifs.seekg(0,std::ios::end);//跳转读写位置到文件末尾
    size_t fsize=ifs.tellg();//获取末尾偏移量（也就是获取文件大小）
    ifs.seekg(0,std::ios::beg);//跳转会起始

    std::string body;
    body.resize(fsize);
    ifs.read(&body[0],fsize);//读取文件数据到body中

    //以LZIP的方式压缩文件数据
    std::string packed=bundle::pack(bundle::LZIP,body);

    std::ofstream ofs;
    ofs.open(ofilename,std::ios::binary);//打开压缩包文件
    ofs.write(&packed[0],packed.size());//将压缩后的数据写入压缩包文件

    ifs.close();
    ofs.clear();
    return 0;
}